[INFO] fetching crate forrust 0.2.4...
[INFO] building forrust-0.2.4 against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] extracting crate forrust 0.2.4 into /workspace/builds/worker-0/source
[INFO] validating manifest of crates.io crate forrust 0.2.4 on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate forrust 0.2.4
[INFO] finished tweaking crates.io crate forrust 0.2.4
[INFO] tweaked toml for crates.io crate forrust 0.2.4 written to /workspace/builds/worker-0/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da2f4a914fd5ae64253fa6e1983d02321f09767621de02bda0b7185fab60fed3
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "da2f4a914fd5ae64253fa6e1983d02321f09767621de02bda0b7185fab60fed3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da2f4a914fd5ae64253fa6e1983d02321f09767621de02bda0b7185fab60fed3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da2f4a914fd5ae64253fa6e1983d02321f09767621de02bda0b7185fab60fed3", kill_on_drop: false }`
[INFO] [stdout] da2f4a914fd5ae64253fa6e1983d02321f09767621de02bda0b7185fab60fed3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 800b561feb7207e2ef96deca9470f532470f841871f29f761391365dd96999ed
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "800b561feb7207e2ef96deca9470f532470f841871f29f761391365dd96999ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling svg v0.7.2
[INFO] [stderr]    Compiling backtrace v0.3.59
[INFO] [stderr]    Compiling proc-macro2 v1.0.27
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling plotlib v0.5.1
[INFO] [stderr]    Compiling forrust v0.2.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::convert::Into`
[INFO] [stdout]  --> src/time_series/moving_median.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::Into;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CategoricalView`
[INFO] [stdout]   --> src/time_series/mod.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use plotlib::view::{View, CategoricalView, ContinuousView};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CategoricalRepresentation`
[INFO] [stdout]   --> src/time_series/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use plotlib::repr::{Plot, CategoricalRepresentation};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContinuousView`
[INFO] [stdout]  --> src/prediction/dumb.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use plotlib::view::{View, ContinuousView};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/prediction/dumb.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |             /// get the distances between the exp smooth and linear reg of a month every year
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 |             let mut distances = Vec::new();
[INFO] [stdout]     |             ------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/time_series/mod.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |         self.data.iter().map(|(x, y)| *y).collect()
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/time_series/moving_median.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let min = *ints.iter().min().unwrap();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/time_series/moving_median.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let max = *ints.iter().max().unwrap();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/time_series/mod.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut view = ContinuousView::new()
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/time_series/mod.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/time_series/moving_median.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/forecasting/expsmooth.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut result = Self {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/forecasting/expsmooth.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/regression/linear.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prediction/dumb.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut sm = TimeSeries::from_pairs_vec(sm);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prediction/dumb.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut tm = self.original.clone();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prediction/dumb.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut group = Grouper::new(&tm)
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `style_mut`
[INFO] [stdout]    --> src/time_series/season.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn style_mut(&mut self) -> &mut Style {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/time_series/mod.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |         panic!(format!("domain value {} doesn't exist in the time series", u));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_fmt_panic)]` on by default
[INFO] [stdout]    = note: this is no longer accepted in Rust 2021
[INFO] [stdout]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 74 |         panic!("domain value {} doesn't exist in the time series", u);
[INFO] [stdout]    |               --                                                   --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/time_series/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |             _ => panic!(format!("Número de mes inválido: {}", v))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is no longer accepted in Rust 2021
[INFO] [stdout]     = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 192 |             _ => panic!("Número de mes inválido: {}", v)
[INFO] [stdout]     |                        --                             --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/time_series/mod.rs:213:24
[INFO] [stdout]     |
[INFO] [stdout] 213 |            _ => panic!(format!("Mes inválido: {}", v))
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is no longer accepted in Rust 2021
[INFO] [stdout]     = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 213 |            _ => panic!("Mes inválido: {}", v)
[INFO] [stdout]     |                       --                   --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 21 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 28.05s
[INFO] running `Command { std: "docker" "inspect" "800b561feb7207e2ef96deca9470f532470f841871f29f761391365dd96999ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "800b561feb7207e2ef96deca9470f532470f841871f29f761391365dd96999ed", kill_on_drop: false }`
[INFO] [stdout] 800b561feb7207e2ef96deca9470f532470f841871f29f761391365dd96999ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 39d8228f1191c4b1875449e95c026618d0d0c8af2f272986aad9c9fe269951b9
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "39d8228f1191c4b1875449e95c026618d0d0c8af2f272986aad9c9fe269951b9", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::convert::Into`
[INFO] [stdout]  --> src/time_series/moving_median.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::Into;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CategoricalView`
[INFO] [stdout]   --> src/time_series/mod.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use plotlib::view::{View, CategoricalView, ContinuousView};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CategoricalRepresentation`
[INFO] [stdout]   --> src/time_series/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use plotlib::repr::{Plot, CategoricalRepresentation};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContinuousView`
[INFO] [stdout]  --> src/prediction/dumb.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use plotlib::view::{View, ContinuousView};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/prediction/dumb.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |             /// get the distances between the exp smooth and linear reg of a month every year
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 |             let mut distances = Vec::new();
[INFO] [stdout]     |             ------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/time_series/mod.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |         self.data.iter().map(|(x, y)| *y).collect()
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/time_series/moving_median.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let min = *ints.iter().min().unwrap();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/time_series/moving_median.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let max = *ints.iter().max().unwrap();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/time_series/mod.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut view = ContinuousView::new()
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/time_series/mod.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/time_series/moving_median.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/forecasting/expsmooth.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut result = Self {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/forecasting/expsmooth.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/regression/linear.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prediction/dumb.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut sm = TimeSeries::from_pairs_vec(sm);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prediction/dumb.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut tm = self.original.clone();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prediction/dumb.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut group = Grouper::new(&tm)
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `style_mut`
[INFO] [stdout]    --> src/time_series/season.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn style_mut(&mut self) -> &mut Style {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/time_series/mod.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |         panic!(format!("domain value {} doesn't exist in the time series", u));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_fmt_panic)]` on by default
[INFO] [stdout]    = note: this is no longer accepted in Rust 2021
[INFO] [stdout]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 74 |         panic!("domain value {} doesn't exist in the time series", u);
[INFO] [stdout]    |               --                                                   --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/time_series/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |             _ => panic!(format!("Número de mes inválido: {}", v))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is no longer accepted in Rust 2021
[INFO] [stdout]     = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 192 |             _ => panic!("Número de mes inválido: {}", v)
[INFO] [stdout]     |                        --                             --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/time_series/mod.rs:213:24
[INFO] [stdout]     |
[INFO] [stdout] 213 |            _ => panic!(format!("Mes inválido: {}", v))
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is no longer accepted in Rust 2021
[INFO] [stdout]     = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 213 |            _ => panic!("Mes inválido: {}", v)
[INFO] [stdout]     |                       --                   --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 21 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling forrust v0.2.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::convert::Into`
[INFO] [stdout]  --> src/time_series/moving_median.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::convert::Into;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CategoricalView`
[INFO] [stdout]   --> src/time_series/mod.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | use plotlib::view::{View, CategoricalView, ContinuousView};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CategoricalRepresentation`
[INFO] [stdout]   --> src/time_series/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use plotlib::repr::{Plot, CategoricalRepresentation};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContinuousView`
[INFO] [stdout]  --> src/prediction/dumb.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use plotlib::view::{View, ContinuousView};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/prediction/dumb.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |             /// get the distances between the exp smooth and linear reg of a month every year
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 |             let mut distances = Vec::new();
[INFO] [stdout]     |             ------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/time_series/mod.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |         self.data.iter().map(|(x, y)| *y).collect()
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/time_series/moving_median.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let min = *ints.iter().min().unwrap();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/time_series/moving_median.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let max = *ints.iter().max().unwrap();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut season = Season::new(&series, 12).set_season(1);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut season2 = Season::new(&season.as_time_series(), 4).set_season(2);
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let mut smooth0_4 = ExpSmoothing::new(&example)
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut dumb = Dumb::new(&example).with_season(12);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/time_series/mod.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut view = ContinuousView::new()
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/time_series/mod.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/time_series/moving_median.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/forecasting/expsmooth.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut result = Self {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/forecasting/expsmooth.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/regression/linear.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut plot = Plot::new(self.get_data());
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/prediction/dumb.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut sm = TimeSeries::from_pairs_vec(sm);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prediction/dumb.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut tm = self.original.clone();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/prediction/dumb.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut group = Grouper::new(&tm)
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `style_mut`
[INFO] [stdout]    --> src/time_series/season.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn style_mut(&mut self) -> &mut Style {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/time_series/mod.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |         panic!(format!("domain value {} doesn't exist in the time series", u));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_fmt_panic)]` on by default
[INFO] [stdout]    = note: this is no longer accepted in Rust 2021
[INFO] [stdout]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 74 |         panic!("domain value {} doesn't exist in the time series", u);
[INFO] [stdout]    |               --                                                   --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/time_series/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |             _ => panic!(format!("Número de mes inválido: {}", v))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is no longer accepted in Rust 2021
[INFO] [stdout]     = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 192 |             _ => panic!("Número de mes inválido: {}", v)
[INFO] [stdout]     |                        --                             --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/time_series/mod.rs:213:24
[INFO] [stdout]     |
[INFO] [stdout] 213 |            _ => panic!(format!("Mes inválido: {}", v))
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is no longer accepted in Rust 2021
[INFO] [stdout]     = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 213 |            _ => panic!("Mes inválido: {}", v)
[INFO] [stdout]     |                       --                   --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 3.22s
[INFO] running `Command { std: "docker" "inspect" "39d8228f1191c4b1875449e95c026618d0d0c8af2f272986aad9c9fe269951b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "39d8228f1191c4b1875449e95c026618d0d0c8af2f272986aad9c9fe269951b9", kill_on_drop: false }`
[INFO] [stdout] 39d8228f1191c4b1875449e95c026618d0d0c8af2f272986aad9c9fe269951b9
